<template>
  <div class='rate'>
    <span>☆☆☆☆☆</span>
    <!-- 这里用了绝对定位 -->
    <div class="hollow" :style='style'>
      ★★★★★
    </div>

  </div>
</template>
<script>
// vue-tiny-rate
//  https://www.zhihu.com/question/46943112  有哪些短小却令人惊叹的JavaScript代码
//  https://github.com/shengxinjing/vue-tiny-rate  这个评分组件的作者地址
//  我们应该可以直接使用其他的组件库，，语法上应该是大部分支持的
export default {
  props: {
    value: {type: [Number, String], default: '0'}
  },
  //  计算文字宽度
  computed: {
    style () {
      return `width:${this.value / 2}em`
    }
  }
}
</script>
<style lang='scss'>
.rate{
  position: relative;
  /* 不独占一行  */
  display: inline-block;
  /* 采用绝对定位来决定星星数量，一个文字的宽度是1rem      */
  /*  这里采用溢出隐藏的方式，很牛逼，很强大 */
  .hollow{
    position: absolute;
    display: inline-block;
    top:0;
    left:0;
    width:0;
    overflow:hidden;
  }
}
</style>


